Current documentation of DPD Services in the REST version (transferring data about parcels to the DPD system, downloading labels, downloading protocols for handing over parcels to the courier, optionally calling the courier, optionally checking the availability of couriers, optionally checking the existence of a postal code in the RDB database) is available at the following address:
https://dpdservices.dpd.com.pl/redoc-ui
and equivalent https://dpdservices.dpd.com.pl/swagger-ui/index.html
The document also includes login details for the test server. This data is for testing purposes only and cannot be used in production to send physical packages. 
Usage consists of the following steps:
1) call of the shipment/v1/generatePackagesNumbers method - where all required data of the sender, recipient and selected services (e.g. COD, delivery on Saturday, etc.) are transferred. In response, we receive waybill numbers for the parcels: one unique number for each parcel. To provide your own reference numbers (such as the order number, invoice number, warehouse document), do not use the technical "reference" field, but rather the ref1, ref2 and ref3 fields, and at the parcel level, to mark the elements contained in it in a business sense, please use the customerData1, customerData2 and customerData3 fields. The "reference" field is used to possibly transmit a unique identifier of a given parcel or shipment (it can be a guid in your database). In the header call, X-DPD-FID is the payer's number (also named masterFid), while payerFID transferred in the body is the same as numkat / fid (a subnumber).
2) call of the shipment/v1/generateSpedLabels method - where you download labels (in the desired PDF, ZPL, EPL or XML format) for the waybill numbers received in step 1.
3) at the end of the day, you can call the shipment/v1/generateProtocol method, which returns a collective protocol containing all shipments for which you called this method.
4) optionally, to call a courier, you can use the courierorder/v1/courierOrderAvailability methods and, based on the ranges returned by it, use the courierorder/v1/packagesPickupCall method.